<?php
/*
exemplo de uso:
	include ("Banco.class.php");
	// Cria Obejto
	$mySQL = new Banco;

	// Executa uma query
	$result = $mySQL->sql("SELECT * FROM amigos WHERE amigo_legal = '1'");

	// loop que  exibe informacoes
	while ($dados = mysql_fetch_array($result)){
		echo $dados["nome"];
	}
	
	//retorna o id do registro que foi inserido
	echo $mySQL->last_index;
	
	//retona o de linhas afetadas pelo consulta
	echo $mySQL->affected_rows;
*/
class Banco{
    // Variaveis
    public $query;
    public $link;
    public $result;
    public $affected_rows;
    public $conta_sql_result;
    public $total_sql_result;
	public $last_index;

    /*
    * @return MySQL
    * @desc Construtor da classe MySQL.
    */
		function __construct()
		{	
		}
	
		/*
    * @return void
    * @desc Metodo que Conecta ao Servidor e seleciona Banco de Dados.
    */
    function connect()
		{
			//Dados padrao, servidor web
			$_servidor 		= "mysql.guiamaceio.com";
			$_usuario			= "guiamaceio_user";
			$_senha 			= "470jrn";
			$_bancoDados 	= "bd_guiamaceio";		
			
			//Verificacao de execucao local		
			$ip = $_SERVER['REMOTE_ADDR'];
		
				//dados para execucao local(testes)
				if($ip == "127.0.0.1")
				{
					//$this->link = mysql_connect("localhost","root","");			
					$_servidor 		= "localhost";
					$_usuario 		= "root";
					$_senha 		= "";		
					$_bancoDados 	= "gc4d";				
				}
		
				$this->link = mysql_connect($_servidor,$_usuario,$_senha);
		
        if(!$this->link)
				{
        	echo "Erro na conex&atilde;o.<br>"."<strong>MySQL retornou: </strong> ".mysql_error()."<br />";
          die();  
	    	}
				elseif (!mysql_select_db($_bancoDados,$this->link))
				{
          echo "Erro na sele&ccedil;&atilde;o do Banco de Dados.<br />"."<strong>MySQL retornou: </strong> ".mysql_error()."<br />";
          die();
        }
    }
		
		
		
    /*
	* @desc Recebe query SQL, executa e retorna resultado, se houver erro retorna 0.
    * @param String $query
	* @return Resultado
    */
    function sql($query){
    	$this->connect();
    	$this->query = $query;
      
			if($this->result=mysql_query($this->query))
			{
				// Obtem o numero de linhas da tabela afetado pela consulta
				$this->affected_rows = mysql_affected_rows($this->link);
				// Ultimo id
				$this->last_index = mysql_insert_id($this->link); 
				//Desconecta
        		$this->disconnect();
				// Retorna o valor (resultado) da consulta
        		return $this->result;
       		 }
			 else
			 {
       			// die("Ocorreu um erro ao executar a Query SQL abaixo:<br>$query<<br><br><strong>MySQL Retornou: ".mysql_error()."<strong>");
				die("Ocorreu um erro ao executar a Query SQL ,MySQL Retornou: <strong>".mysql_error()."</strong>");
        		// Desconecta
				$this->disconnect();
        	 }

    }
    
    
    
	/*
	* @desc Recebe query SQL, executa e retorna resultado, se houver erro retorna 0.
    * @param Metodo mysqlResult()
	* @return Resultado do total de linhas da tabela
    */
	/*
	function mysqlResult($query)
	{
		$this->connect();
    	$this->query = $query;
    	
		if($this->conta_sql_result=mysql_query($this->query))
		{
			//Retorna o conteudo de uma celula do resultado (query)
			$this->total_sql_result = mysql_result($this->conta_sql_result, 0, $this->total_sql_result);
			//Desconecta
        	$this->disconnect();
			// Retorna o valor (resultado) da consulta
        	return $this->total_sql_result;
       	 }
	}
	*/
	
	
	
	//retorna as tabelas do banco de dados
	function getTables(){
		$sql = "SHOW TABLES";
		return $this->sql($sql);		
	}
	
	
	
	//optimiza as tabelas
	function optimize(){
		$tables = $this->getTables();
			
		while($tb = mysql_fetch_array($tables))
		{
			$sqlOptimize = "OPTIMIZE TABLE ".$tb[0]."";
			//echo "<br />".$sqlOptimize."<br />";
			$this->sql($sqlOptimize);			
		}
	}
	
	
	
	/*
	 * @desc Desconecta do servidor
	 * @return mysql_close
	 */
	function disconnect(){
		return mysql_close($this->link);
	}
}
?>
